package com.wenan.ui.controls.menus
{
	import mx.collections.ArrayCollection;

	/**
	 * 菜单项集合类
	 * */
	public class MenuItemCollection
	{
		/**
		 * 菜单项数据集合
		 * */
		private var _innerList:ArrayCollection = new ArrayCollection();
		
		/**
		 * 构造方法
		 * */
		public function MenuItemCollection()
		{
		}
		
		/**
		 * 获取菜单项数据集合：不允许外部修改
		 * */
		public function get innerList():ArrayCollection
		{
			return _innerList;
		}
		
		/**
		 * 获取菜单项数据集合长度
		 * */
		public function get length():int
		{
			return _innerList.length;
		}

		/**
		 * 指定下标处提取
		 * */
		public function getAt(index:int):MenuItem
		{
			return _innerList.getItemAt(index) as MenuItem;
		}
		
		/**
		 * 自动添加
		 * */
		public function add(menuItem:MenuItem):void
		{
			_innerList.addItem(menuItem);	
		}
		
		/**
		 * 指定位置处添加
		 * 
		 * @param index 执行添加操作的下标索引
		 * @param menuItem 被添加的菜单项对象
		 * */
		public function insert(index:int, menuItem:MenuItem):void
		{
			_innerList.addItemAt(menuItem, index);	
		}
		
		/**
		 * 删除指定对象
		 * 
		 * @param menuItem 被指定的删除对象
		 * */
		public function remove(menuItem:MenuItem):void
		{
			var index:int = _innerList.getItemIndex(menuItem);
			if (index > -1)
			{
				removeAt(index);
			}
		}
		
		/**
		 * 指定下标处删除
		 * 
		 * @param index 被指定删除操作的下标索引
		 * */
		public function removeAt(index:int):void
		{
			_innerList.removeItemAt(index);	
		}
		
		/**
		 * 清除菜单
		 * */
		public function clear():void
		{
			_innerList.removeAll();
		}
		
		/**
		 * 将数据集合转转换成数组
		 * 
		 * @return 组数类型的菜单数据
		 * */
		public function toArray():Array
		{
			return _innerList.toArray();
		}
	}
}